Parameters
- Frames
Frame numbers of the frames for subtraction
- mode
- The subtraction mode to use
Frame numbers of the frames for subtraction
Frame numbers of the frames for subtraction
// Basic Example: DicomImage image = new DicomImage("your_dicom_image.dcm"); image.SetSimpleMasking(1, MaskMode.AverageSubtraction); // Retrieving masking values from the DICOM image DicomImage image = new DicomImage("your_dicom_image.dcm"); MaskMode mode = MaskMode.AverageSubtraction; List<int> maskFrameNumbers = new List<int>() { 1 }; // Retrieve Mask Subtraction Sequence if it exists var maskSubtractionSequence = image.DataSet[Keyword.MaskSubtractionSequence].Value as DicomDataSetCollection; var firstItem = maskSubtractionSequence[0]; if (firstItem[Keyword.MaskOperation].ExistsWithValue) { string maskOperation = firstItem[Keyword.MaskOperation].Value.ToString().ToUpper(); if (maskOperation != null) mode = GetMaskMode(maskOperation); } if (firstItem[Keyword.MaskFrameNumbers].ExistsWithValue) { ushort[] maskFrameNumbersUShort = firstItem[Keyword.MaskFrameNumbers].Value as ushort[]; maskFrameNumbers = maskFrameNumbersUShort.Select(f => (int)f).ToList(); } // Apply simple masking with extracted mask frames and mode image.SetSimpleMasking(maskFrameNumbers.ToArray(), mode); private MaskMode GetMaskMode(string dicomMaskOperation) { switch (dicomMaskOperation) { case "AVG_SUB": return MaskMode.AverageSubtraction; case "MIN": return MaskMode.Minimum; case "MAX": return MaskMode.Maximum; case "TID": return MaskMode.TimeDifference; case "REV_TID": return MaskMode.ReverseTimeDifference; default: return MaskMode.None; } }